package auxiliadormatricula.logica;

import java.util.HashMap;
import java.util.Map;

public class GerenciadorDeDisciplinas {
	
	private Map<NoDisciplina, NoDisciplina[]> fluxograma;
	private static GerenciadorDeDisciplinas gerenciador;
	
	private GerenciadorDeDisciplinas() {
		fluxograma = new HashMap<NoDisciplina, NoDisciplina[]>();
		preencheFluxograma();
	}

	public static GerenciadorDeDisciplinas getInstance() {
		if (gerenciador == null) {
			gerenciador = new GerenciadorDeDisciplinas();
		} 
		return gerenciador;
	}

	private void preencheFluxograma() {
		for(NoDisciplina no : NoDisciplina.values()) {
			fluxograma.put(no, no.getDependencias());
		}
	}
	
	public Map<NoDisciplina, NoDisciplina[]> getFluxograma() {
		return new HashMap<NoDisciplina, NoDisciplina[]>(fluxograma);
	}
	
	public void setStatusDisciplina(StatusDisciplina novoStatus, NoDisciplina disc) {
		disc.setStatus(novoStatus);
	}
}